#pragma once
#include "Shader.h"
#include "Color.h"

namespace Graphics
{
	class Texture;
}

namespace Graphics
{
class FontShader : public Graphics::Shader
{
	RTTI_DECLARATIONS(FontShader, Graphics::Shader)
private:
	struct PixelBufferType
	{
		D3DXVECTOR4 PixelColor;
	};
public:
	FontShader(void);
	virtual ~FontShader(void);
	bool Initialize();
	void Deinitialize();
	bool Render(int indexCount, D3DXMATRIX worldMatrix, D3DXMATRIX viewMatrix, D3DXMATRIX projectionMatrix,  Texture* texture, Color color);

private:
	bool InitializeShader(HWND winHandle, const char* vertexShaderName, const char*  pixelShaderName);	
	void DeinitializeShader();
	bool SetShaderParameters(D3DXMATRIX worldMatrix, D3DXMATRIX viewMatrix, D3DXMATRIX projectionMatrix,  Texture* texture, Color color);

private:
	ID3D11Buffer* mPixelBuffer;
};
}